package com.power.sifa.correction.model.pojo.bo.rule;

import com.power.sifa.correction.model.pojo.bo.CheckRuleRequestBO;
import com.power.sifa.correction.model.pojo.bo.CheckRuleResultBO;

import java.util.List;
import java.util.function.Supplier;

/**
 * @ClassName RuleHandler
 * @Author xiongzw
 * @Date 2023/12/10 10:12
 * @Description 规则校验接口
 * @Version: 1.0
 **/

public interface IRuleHandler {

    /**
     * 设置下一规则
     * @param supplier 下一个规则
     * @return
     */
    void initNextRule(Supplier<IRuleHandler> supplier);

    /**
     * 设置下一规则
     * @param
     * @return
     */
    void setNextRule (Supplier<IRuleHandler> supplier);

    /**
     * 获取下一规则
     * @param
     * @return
     */
    IRuleHandler getNextRule();

    /**
     * 校验当前规则
     * @param request 请求对象
     * @param checkRuleResultList 结果对象
     */
    void handleRule(CheckRuleRequestBO request, List<CheckRuleResultBO> checkRuleResultList);
}
